import { request } from "../../request/index.js";
import regeneratorRuntime, { async } from '../../lib/runtime/runtime';

// components/Tabs/Tabs.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    addressFirstIndex: {
      type: String,
      value: ""
    },
    isThree: {
      type: Boolean,
      value: false
    },
    // 判断是否第一次跳转到列表页
    isFirst: {
      type: Boolean,
      value: false
    },
    isMore: {
      type: Boolean,
      value: false
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    tabIndex: 0,
    leftArr: [],
    rightArr: [],
    // 请求参数
    current: [1, 1],
    // 总条数
    totalPages: [1, 1],
    isShow: false
  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 改变Tabs栏选项
    changeTabs (e) {
      const { index } = e.currentTarget.dataset
      this.setData ({
        tabIndex: index,
      })
    },

    // 请求多条数据
    async getDataList (limit, index) {
      console.log(this.data.current[index], limit, this.properties.addressFirstIndex, index)
      const res = await request({
        method: 'post',
        url: `/animal/queryAnimal?current=${this.data.current[index]}&limit=${limit}`,
        data: {
          addressFirstIndex: this.properties.addressFirstIndex,
          status: index
        }
      })
      console.log(res)

      if (res.resultTypeCode == 200) {
        this.data.totalPages[index] = Math.ceil(res.data.totalRecordsNum / limit)
        if (index == 0) {
          this.setData ({
            leftArr: [...this.data.leftArr, ...res.data.animalList]
          })
        } else {
          this.setData ({
            rightArr: [...this.data.rightArr ,...res.data.animalList]
          })
        }  
      }
    },

    // 滚动条到底部触发请求事件
    getMoreData () {
      console.log("触发")
      //  1 判断还有没有下一页数据
      if(this.data.current[this.data.tabIndex]>=this.data.totalPages[this.data.tabIndex]) {
        // 没有下一页数据
        wx.showToast({
          title: '没有更多数据了',
          icon: 'success',
          duration: 1000,
        });
      } else {
        // 还有下一页数据
        this.data.current[this.data.tabIndex] ++
        this.getDataList (5, this.data.tabIndex)
      }
    },

    // 初始化请求
    firstGetDataList () {
      let limit = 5
      if (this.properties.isThree) {
        limit = 3
      }
      this.getDataList (limit, 0)
      this.getDataList (limit, 1)
    },
  },


  lifetimes: {
    attached () {
      if (this.properties.isFirst) {
        this.triggerEvent("isFirstChange")
        return
      }
      console.log("attached")
      // 在组件实例进入页面节点树时执行
      this.firstGetDataList ()
    },
    detached: function() {
      // 在组件实例被从页面节点树移除时执行
    },
  },

  pageLifetimes: {
    show: function() {
      if (this.data.isShow) {
        return
      }
      if (this.properties.isThree) {
        return
      }
      console.log("show")
      // 页面被展示
      this.firstGetDataList ()
    },
    hide: function() {
      // 页面被隐藏
      this.setData ({
        isShow: true
      })
    },
    resize: function(size) {
      // 页面尺寸变化
    }
  },

  // 下拉刷新事件 
  onPullDownRefresh(){
    // 1 重置数组
    this.setData({
      arr: [[], []],
      // 数据是否请求完
      isEnd: false
    })
    // 2 重置页码
    this.setData ({
      leftArr: [],
      rightArr: [],
      // 请求参数
      current: [1, 1]
    })
    // 3 发送请求
    this.firstGetDataList ()
  }

})
